import {
  reqGoodsPageList
} from '../../../api/index'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsPageList: [], //商品分页列表
    page: 1, //初始化当前页码
    limit: 10, //初始化每页大小
    options: {}, //保存路由参数
    status: 'more', //加载状态数据
    // status: more==>还有数据 nomore==>没有数据了 error==>请求出错 loading==>正在加载
  },
  // 封装函数发送获取商品分页列表的请求
  async getGoodsPageList() {
    let {
      page,
      limit,
      options,
      goodsPageList
    } = this.data
    // 请求之前状态调整为loading
    this.setData({
      status:'loading'
    })
    try {
      const res = await reqGoodsPageList(page, limit, options)
      // res.data.records 如果长度等于10 后面还有数据
      // res.data.records 如果长度小于10但是大于0 后面没有数据了
      // res.data.records 如果长度正好等于0 没有数据了
      if (res.data.records.length > 0) {
        if (res.data.records.length === 10) {
          this.setData({
            status: 'more'
          })
        } else {
          this.setData({
            status: 'nomore'
          })
        }
        // 在原有数组基础上新增最新的内容
        goodsPageList.push(...res.data.records)
      } else { // 长度正好等于0
        this.setData({
          status: 'nomore'
        })
      }
      this.setData({
        goodsPageList,
        // 每次请求完成更改当前页码
        page: ++page
      })
    } catch (error) {
      console.log(error)
      // 修改status状态位error
      this.setData({
        status: 'error'
      })
      wx.showToast({
        title: '获取商品列表失败',
      })
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // options可以接收到传递过来的路由参数
    this.setData({
      options
    })
    this.getGoodsPageList()
  },

  /*页面上拉触底事件的处理函数 */
  onReachBottom() {
    console.log('触底了...')
    // 如果status位more 后面还有数据 才有必要发送请求
    if(this.data.status === 'more'){
      this.getGoodsPageList()
    }
  },
})